﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ActionTrackerEntities;
using ActionTrackerRules.Base;
using ActionTrackerRules.Helpers;

namespace ActionTrackerRules
{
    public class ReunionRules : RulesBase   
    {
        public List<Reunion> GetByFiltro(int? pIdProyecto)
        {
            return GetDaoProvider().GetDaoReunion().GetByFiltro(pIdProyecto);
        }

        public List<Reunion> GetAll()
        {
            return GetDaoProvider().GetDaoReunion().GetAll();
        }

        public ResponseEnum Guardar(Reunion pReunion)
        {
            try
            {
                //verifico que no exista un usuario con el mismo nombre
                if (GetDaoProvider().GetDaoReunion().ExisteReunionConNombre(pReunion.Descripcion, pReunion.Proyecto.IdProyecto,null))
                {
                    return ResponseEnum.EntidadExistente;
                }
                
                //busco la entidad proyecto
                ProyectoRules oProyectoRules = new ProyectoRules();
                pReunion.Proyecto = oProyectoRules.GetById(pReunion.Proyecto.IdProyecto);
                
                GetDaoProvider().GetDaoReunion().SaveOrUpdate(pReunion);
                return ResponseEnum.Ok;
            }
            catch (Exception ex)
            {
                return ResponseEnum.Error;
            }
        }

        public Reunion GetById(int pIdReunion)
        {
            return GetDaoProvider().GetDaoReunion().GetById(pIdReunion);
        }

        public ResponseEnum Actualizar(Reunion pReunion)
        {
            try
            {
                //verifico que no exista un usuario con el mismo nombre
                if (GetDaoProvider().GetDaoReunion().ExisteReunionConNombre(pReunion.Descripcion, pReunion.Proyecto.IdProyecto, pReunion.IdReunion))
                {
                    return ResponseEnum.EntidadExistente;
                }

                GetDaoProvider().GetDaoReunion().SaveOrUpdate(pReunion);
                return ResponseEnum.Ok;
            }
            catch (Exception ex)
            {
                return ResponseEnum.Error;
            }
        }
    }
}
